Methods and systems for producing a 3-D rotational image from a 2-D image

ABSTRACT

Methods, systems, and articles of manufacture consistent with the present invention produce a three-dimensional rotational image from a two-dimensional image including a plurality of objects. Each object is assigned to one of a plurality of sequential layers that correspond to visually depicted depths of the objects in the two-dimensional image. The objects are rotatively displayed to produce the three-dimensional rotational image.

CROSS-REFERENCE TO RELATED APPLICATIONS

This Application is a continuation of application Ser. No. 10/053,169filed Nov. 2, 2001 now U.S. Pat. No. 6,914,618. The present andforegoing application claim priority to the filing date of the followingU.S. and foreign patent applications, each of which is incorporatedherein by reference to the extent permitted by law:

European Patent Application No. 00123861.7 entitled “A METHOD ANDAPPARATUS FOR PRODUCING A 3-D ROTATIONAL IMAGE FROM A 2-D IMAGE”, filedon Nov. 2, 2000; and

U.S. Provisional Patent Application No. 60/295,603, entitled “METHOD ANDAPPARATUS FOR PRODUCING A 3-D ROTATIONAL IMAGE FROM A 2-D IMAGE”, filedon Jun. 4, 2001.

FIELD OF THE INVENTION

The present invention relates to computer generated three-dimensionalimages, and in particular, the invention relates to producing athree-dimensional rotational image from a two-dimensional image.

BACKGROUND OF THE INVENTION

In the context of this disclosure, unless otherwise qualified, the term“image” refers to two-dimensional arrangements of objects from anydesired source and of any desired content, such as photographic orsynthetic images, and also to two-dimensional areas, which representdistributions of measured values or other variables. Also, herein,two-dimensional images contain objects defined by polygons (outlineedges) and by patterns, color and shading of the areas. The objects maypartially overlap such that the objects are partly visible to a viewer.

Computer-based methods for converting a two-dimensional image to athree-dimensional image are known. Such a method is used, for example,in image processing systems.

One such method of generating a three-dimensional image uses rotation ofthe two-dimensional image around a rotation axis. This method works forsingle objects, as well as for multiple objects that overlap, as long asthe rotation angle about the rotation axis is 360°. If the rotationangle does not equal 360°, then there is a loss of information fortwo-dimensional overlapping objects.

SUMMARY OF THE INVENTION

Methods, systems, and articles of manufacture consistent with thepresent invention provide for producing a three-dimensional rotationalimage from a two-dimensional image that includes a plurality of objects.This allows a computer program to represent a spatial depth (thedistance from a viewer) of the objects that are included in thetwo-dimensional image. Objects that overlap are represented in differentlayers from front to rear, perpendicularly with respect to thetwo-dimensional image plane. The computer program sequentially ordersthe objects in layers according to their depth by using the depthinformation implicitly present in the two-dimensional image. An objectthat is ordered later is assigned to the layer of the object previouslyordered if there is no overlap, but is assigned to a new layer if thereis an overlap with the previously ordered object, or if there is aninclusion.

The computer program rotates the objects at a rotational angle about acommon rotation axis, based on their layering. Objects lying furtherback are rotated by a smaller rotational angle, and objects lyingfurther forward are rotated by a larger rotational angle.

This has the effect of producing an impression of the depth in thethree-dimensional rotational image, while at the same time, minimizingthe required number of layers. Further, a time for producing thethree-dimensional rotational image is low, since the complexity of therepresentation merely increases linearly with the number of objects.Also, the three-dimensional rotational image has a natural look thatprovides a good visual impression for the viewer.

In accordance with methods consistent with the present invention, amethod in a data processing system for producing a three-dimensionalrotational image from a two-dimensional image including a plurality ofobjects is provided. The method comprises the steps of: assigning eachobject to one of a plurality of sequential layers that correspond tovisually depicted depths of the objects in the two-dimensional image;and rotatively displaying the objects to produce the three-dimensionalrotational image.

In accordance with methods consistent with the present invention, amethod in a data processing system for producing a three-dimensionalrotational image from a two-dimensional image including a plurality ofobjects is provided. The method comprises the steps of: ordering theobjects in a sequence based on depths of the objects in thetwo-dimensional image; sequentially assigning each object in thesequence to one of a plurality of layers so that within a given layer anobject assigned to that layer neither overlaps with another object inthe given layer, nor is included within another object in the givenlayer; rotating the objects of each layer around a common rotationalaxis to form the three-dimensional rotational image having a maximumrotational angle around the rotational axis with each object in a firstof the layers having a minimum rotational angle and objects in layersother than the first layer having a rotational angle greater than theminimum rotational angle and less than or equal to the maximumrotational angle; and displaying the three-dimensional rotational image.

In accordance with articles of manufacture consistent with the presentinvention, a computer-readable medium containing instructions that causea data processing system to perform a method for producing athree-dimensional rotational image from a two-dimensional imageincluding a plurality of objects is provided. The method comprises thesteps of: assigning each object to one of a plurality of sequentiallayers that correspond to visually depicted depths of the objects in thetwo-dimensional image; and rotatively displaying the objects to producethe three-dimensional rotational image.

In accordance with articles of manufacture consistent with the presentinvention, a computer-readable medium containing instructions that causea data processing system to perform a method for producing athree-dimensional rotational image from a two-dimensional imageincluding a plurality of objects is provided. The method comprises thesteps of: ordering the objects in a sequence based on depths of theobjects in the two-dimensional image; sequentially assigning each objectin the sequence to one of a plurality of layers so that within a givenlayer an object assigned to that layer neither overlaps with anotherobject in the given layer, nor is included within another object in thegiven layer; rotating the objects of each layer around a commonrotational axis to form the three-dimensional rotational image having amaximum rotational angle around the rotational axis with each object ina first of the layers having a minimum rotational angle and objects inlayers other than the first layer having a rotational angle greater thanthe minimum rotational angle and less than or equal to the maximumrotational angle; and displaying the three-dimensional rotational image.

In accordance with systems consistent with the present invention, a dataprocessing system for producing a three-dimensional rotational imagefrom a two-dimensional image including a plurality of objects isprovided. The data processing system comprises: a memory comprising aprogram that assigns each object to one of a plurality of sequentiallayers that correspond to visually depicted depths of the objects in thetwo-dimensional image, and rotatively displays the objects to producethe three-dimensional rotational image; and a processing unit that runsthe program.

In accordance with systems consistent with the present invention, a dataprocessing system for producing a three-dimensional rotational imagefrom a two-dimensional image including a plurality of objects isprovided. The data processing system comprises: means for assigning eachobject to one of a plurality of sequential layers that correspond tovisually depicted depths of the objects in the two-dimensional image;and means for rotatively displaying the objects to produce thethree-dimensional rotational image.

In accordance with articles of manufacture consistent with the presentinvention, a computer-readable memory device encoded with a datastructure with entries is provided. Each entry reflects a layerassociated with a visually depicted depth in a two-dimensional imageincluding a plurality of objects, wherein a three-dimensional rotationalimage is produced from the two-dimensional image by a program which isencoded on the memory device and which is run by a processor in asystem. Each entry comprises a storage area in which is stored one ofthe plurality of objects assigned to the layer by the program, whereinthe program rotatively displays the objects to produce thethree-dimensional image.

The above-mentioned and other features, utilities, and advantages of theinvention will become apparent from the following detailed descriptionof the preferred embodiments of the invention together with theaccompanying drawings.

Other systems, methods, features, and advantages of the invention willbecome apparent to one with skill in the art upon examination of thefollowing figures and detailed description. It is intended that all suchadditional systems, methods, features, and advantages be included withinthis description, be within the scope of the invention, and be protectedby the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate an implementation of theinvention and, together with the description, serve to explain theadvantages and principles of the invention. In the drawings,

FIG. 1 depicts a block diagram of a data processing system with whichembodiments of the present invention may be implemented;

FIG. 2 depicts a block diagram of a data structure with whichembodiments of the present invention may be implemented;

FIG. 3 depicts a block-diagram of a client-server based data processingsystem with which embodiments of the present invention may beimplemented;

FIG. 4A depicts a block diagram of a front view of a two-dimensionalimage, in accordance with methods, systems, and articles of manufactureconsistent with the present invention;

FIG. 4B depicts a perspective view of a three-dimensional rotationalrepresentation of the two-dimensional image of FIG. 4A, in accordancewith methods, systems, and articles of manufacture consistent with thepresent invention;

FIG. 4C depicts a representation of the objects of the two-dimensionalimage of FIG. 4A as ordered in layers according to their depth, inaccordance with methods, systems, and articles of manufacture consistentwith the present invention;

FIG. 4D depicts a top view of the three-dimensional rotational image ofFIG. 4B, in accordance with methods, systems, and articles ofmanufacture consistent with the present invention;

FIG. 4E depicts a top view of another three-dimensional rotationalimage, in accordance with methods, systems, and articles of manufactureconsistent with the present invention;

FIG. 4F depicts a top view of yet another three-dimensional rotationalimage, in accordance with methods, systems, and articles of manufactureconsistent with the present invention;

FIG. 5 depicts a flow diagram illustrating the steps of producing athree-dimensional rotational image from a two-dimensional image, inaccordance with methods, systems, and articles of manufacture consistentwith the present invention; and

FIGS. 6A to 6E depict an ordered sequence of the objects in thetwo-dimensional image of FIG. 4A and an assignment of the objects tolayers, in accordance with methods, systems, and articles of manufactureconsistent with the present invention.

DETAILED DESCRIPTION OF THE INVENTION

Reference will now be made in detail to an implementation consistentwith the present invention as illustrated in the accompanying drawings.Wherever possible, the same reference numbers will be used throughoutthe drawings and the following description to refer to the same or likeparts.

FIG. 1 depicts a block diagram of a data processing system 100 suitablefor practicing methods and implementing systems consistent with thepresent invention. The data processing system 100 comprises a centralprocessing unit (CPU) 110, an input output I/O unit 120, a memory 130, asecondary storage device 140, and a video display 150. The dataprocessing system 100 may further comprise standard input devices suchas a keyboard 160, a mouse 170 or a speech processing means (notillustrated).

The memory 130 contains a computer program 180 for producing athree-dimensional rotational image from a two-dimensional image.Computer program 180 presents the two-dimensional image and theresultant three-dimensional rotational image on the video display 150.

The memory 130 contains various drivers and libraries (not shown) thatare required for generating a three-dimensional rotational image. One ofskill in the art will appreciate that the particular routines, drivers,and libraries that are used to support the methods, systems, andarticles of manufacture consistent with the present invention depend,for example, on the operating system, computer programming language, andprocessor used to implement this invention. The routines, drivers, andlibraries are known in the art and are therefore not described herein.

The computer program 180 includes a data structure 200 having entriesreflecting layers of the two-dimensional image and objects of thetwo-dimensional image that are assigned to the layers. FIG. 2 depicts amore detailed diagram of the data structure 200. The sample datastructure 200 that is depicted in FIG. 2 represents a layer. The datastructure 200 comprises a name of an object 210 that corresponds to thelayer and the object's geometrical information 220. The geometricalinformation can include, for example, position, size, and shapeinformation.

Although aspects of one implementation are depicted as being stored inmemory, one skilled in the art will appreciate that all or part ofsystems and methods consistent with the present invention may be storedon or read from other computer-readable media, such as secondary storagedevices, like hard disks, floppy disks, and CD-ROM; received from anetwork such as the Internet; or other forms of ROM or RAM eithercurrently known or later developed. Further, although specificcomponents of data processing system 100 have been described, oneskilled in the art will appreciate that a data processing systemsuitable for use with methods, systems, and articles of manufactureconsistent with the present invention may contain additional ordifferent components.

One skilled in the art will appreciate that methods, systems, andarticles of manufacture consistent with the present invention may alsobe implemented in a client-server environment, like the one depicted inFIG. 3. FIG. 3 depicts a block diagram of a client-server based dataprocessing system 300 with which methods, systems, and articles ofmanufacture consistent with the present invention may be implemented. Aclient computer system 310 and a server computer system 320 are eachconnected to a network 330, such as a Local Area Network, Wide AreaNetwork, or the Internet. The computer program 180 can be stored on theclient computer system 310 while some or all steps of the processing asdescribed below can be carried out on the server computer system 320,which is accessed by the client computer system 310 over the network330.

FIG. 5 depicts a flow diagram 500 illustrating exemplary steps ofproducing a three-dimensional rotational image from a two-dimensionalimage in accordance with methods, systems, and articles of manufactureconsistent with the present invention. FIGS. 4A to 4D are referred tofor illustration.

Referring to FIG. 4A, that figure depicts a front view of atwo-dimensional image 400 comprising a plurality of objects 401, 402,403, and 404. As illustrated, object 402 overlaps objects 401 and 403.Object 404 overlaps object 403 and is included within a boundary ofobject 403. Depth information is illustrated by the overlap of theobjects 401, 402, 403, and 404. As will be described below withreference to the process 500 shown in FIG. 5, the depth information isobtained by the computer program to assign the objects of thetwo-dimensional image 400 to individual layers as shown in FIG. 4C. Thecomputer program then generates a three-dimensional rotational image ofthe two-dimensional image 400 based on the assigned layers. A resultantthree-dimensional rotational image 450 is depicted in a perspective viewin FIG. 4B and in a top view in FIG. 4D.

While simple two-dimensional polygons are used to depict thetwo-dimensional objects in FIG. 4A, one of skill in the art willappreciate that the invention is not limited to such objects. Thetwo-dimensional objects can be defined based on, for example, patterns,color, shading of areas, and texture of areas in the two-dimensionalimage 400.

For illustrative purposes, each object in the two-dimensional image 400is defined by a polygon, which encloses a distinguishably representedarea of the object. The representation of objects in a two-dimensionalimage by polygons is well known, and is therefore not further describedherein. Also, the use of a specific set of polygonal objects todemonstrate the principles of the invention is illustrative, and is notintended to limit the invention to the specific set used.

Methods for storing and representing polygons in a computer memory, anddetermining whether polygons in a two-dimensional image overlap are wellknown to one of skill in the art. Accordingly, a particular method usedto represent the two-dimensional polygons is not described herein. Thepolygons can be represented, for example, by their name, as well as, bygeometrical information, such as position, size, and shape information.At runtime, this information can be stored in memory. For illustrativepurposes herein, the objects are stored in memory 130 at runtime andrepresented by their name and geometrical information, including, forexample, position, size, and shape information. This manner of storingand representing the objects is illustrative and does not limit theinvention.

Referring back to FIG. 5, in the illustrated process 500, first, thecomputer program 180 sorts the objects of the two-dimensional image bytheir visually depicted depth (step 501). The computer program ordersthe objects in the two-dimensional image according to the depth sequenceof their layering in the two-dimensional image. The object that is atthe furthest depth (i.e., furthest from the viewer) is referred to as areference polygon. A reference plane defines the plane of the referencepolygon. Accordingly, the computer program generates a sequence ofpolygons defined by the layering of the polygons in the two-dimensionalimage, where a first polygon in the sequence is the reference polygon.

Referring to FIG. 4C for illustration, that figure depicts the depthlayering of objects 401 to 404 as presented in FIG. 4A. As illustrated;object 401 is deepest (i.e., furthest removed from the front surface asviewed in FIG. 4A), followed by objects 403, 402, and 404, respectively.The actual relative depth is not required, but is depicted forillustrative purposes.

Referring to the illustrated example, in step 501, polygons intwo-dimensional image 400 are ordered according to the sequence of theirlayering in two-dimensional image 400 with respect to a reference plane410 that defines the reference polygon. Reference plane 410 is merelydepicted for illustration and is not a part of the two-dimensional image400. In the example of FIG. 4C, the reference plane 410 is at the rearof the two-dimensional image 400. Accordingly, the rearmost polygon 401in two-dimensional image 400 is the reference polygon and, therefore,the computer program assigns polygon 401 first place in the order. Thecomputer program also assigns polygon 403 second place, polygon 402third place, and the front most polygon 404 in two-dimensional image 400is assigned last place in the order.

Thus, in step 501, the computer program generates an ordered list ofpolygons in two-dimensional image 400 (i.e., an ordered sequence ofpolygons). The computer program generates the ordered list so that, ifpossible, a polygon is ordered next to a current polygon in a sequencefor which there is no overlap between the current polygon and the nextpolygon in sequence. If no such non-overlapping polygon is available,then the computer program chooses one of the polygons overlapping withthe current polygon that is located rearmost (based on the overlapinformation with other polygons). If more than one such rearmostpolygons are available (e.g., if two or more groups of polygons arepresent, each of the groups having a rearmost polygon, but none of thepolygons of one group overlap with a polygon of the other group), thenthe computer program arbitrarily chooses one of the rearmost polygons asnext polygon. Accordingly, the computer program will then choose theother rearmost polygon of the other group to be ordered next, since itdoes not overlap with the one selected before.

By such an ordering, the number of necessary layers that have to beassigned (as will be described below in more detail) can be minimized.The resulting three-dimensional image will then contain the least numberof different rotational angles necessary to provide a good-lookingthree-dimensional rotational image of the two-dimensional image.

FIG. 6A depicts the reference numerals for the polygons 401, 402, 403,and 404 in an ordered list 600. Each entry in the list can comprise aname of the respective object. The list 600 is, for example, in memory130. The list 600 is illustrative, as is the use of an ordered list, anddoes not limit the invention. Methods for representing ordered data in asequence are well known to one of skill in the art. Accordingly, aparticular method used to represent the ordered data is not describedherein.

As discussed above, in the depth sorting operation of step 501, thecomputer program selects one polygon to define an initial reference(i.e., the reference polygon), and then orders the other polygons withrespect to the reference polygon based upon the overlap. With respect tothe illustrated example, the reference plane 410 is used to define theinitial reference for the depth layering. The reference plane is used toaid in the visualization of the depth layering, however, the initialreference can be defined in different ways.

Referring back to FIG. 5, after step 501, the computer program performsa layer assignment operation (step 502). During the layer assignmentoperation of step 502, the computer program sequentially assigns eachpolygon in the ordered list that was generated in step 501, startingwith the reference polygon, to one of a plurality of layers so that,within a given layer, a polygon assigned to that layer neither (i)overlaps with another polygon in the given layer, nor (ii) is includedwithin another polygon in the given layer.

Step 502 is described in more detail as follows. The computer programfirst defines the first layer in the three-dimensional rotational imageand, based on a current polygon pointer that initially points to thefirst polygon in the ordered list of polygons (i.e., ordered sequence),assigns the first polygon in the ordered list of polygons to the firstlayer (i.e., to a reference layer) (step 510). The computer program thenadvances the current polygon pointer to the second polygon in theordered list of polygons. Also, the computer program sets a currentlayer pointer to the first layer. As used herein, the current layerrefers to a layer addressed by the current layer pointer.

Once the first layer has been defined and the current polygon andcurrent layer pointer have been set in step 502, then the computerprogram determines whether all the polygons in the ordered list havebeen processed (step 511).

If the computer program determines that not all of the polygons in theordered list have been processed in step 511, then the computer programdetermines whether the current polygon (i.e., the polygon in the orderedlist of polygons addressed by the current polygon pointer) overlaps anypolygons in the two-dimensional image that are assigned to the currentlayer (step 512). An overlap can be either a partial overlap, or a totaloverlap where one polygon lies completely in front of another polygon.The computer program also determines whether there is a completeenclosing of a polygon within another polygon, which is referred toherein as an inclusion.

If the computer program determines that the current polygon overlaps orincludes another polygon in step 512, then the computer program definesa new layer (step 513). In step 513, the computer program generates anew layer, and changes the current layer pointer to address the newlayer so that the new layer becomes the current layer.

If the computer program determines that the current polygon does notoverlap or include another polygon in step 512 or after the computerprogram defines a new layer in step 513, then the computer programassigns the current polygon to the current layer, and advances thecurrent polygon pointer to the next polygon in the ordered list ofpolygons (step 514). After step 514, the computer program returns tostep 511.

Steps 511, 512, 513, and 514 are repeated until all polygons in theordered list of polygons are assigned to a layer. If the computerprogram determines that all the polygons in the ordered list have beenprocessed in step 511, then the assignment of layers in step 502 iscomplete.

The assignment of layers in step 502 will now be explained in moredetail in connection with FIGS. 6A to 6E, using the two-dimensionalimage 400 of FIG. 4A as an example. The computer program generatesordered list 600 of polygons in step 501, as discussed above, and thenbased on ordered list 600 starts to assign layers to the polygons inordered list 600. In step 502, the computer program sequentially assignslayers to the polygons in ordered list 600. The assigning of the layersto the polygons in ordered list 600 is sequentially performed forindividual polygons, one after another, where a polygon for which anassignment is currently to be performed is addressed by a currentpolygon pointer 601 as shown in FIGS. 6A to 6E.

The ordered list 600 resulting from step 501 is shown in FIG. 6A. Acurrent polygon pointer 601 addresses a first polygon in ordered list600 as shown in FIG. 6A. In step 510, the computer program assignspolygon 401, which is stored in a location in ordered list 600 that isaddressed by current polygon pointer 601, to first layer 610. Thisoperation is illustrated in FIG. 6B as storing reference numeral 401 ina location in memory for first layer 610, which is addressed by acurrent layer pointer 611. Current layer pointer 311 is a pointer whichaddresses a memory location corresponding to a certain layer. While instep 510, the computer program advances current polygon pointer 601 toaddress the next location in ordered list 600, which in the illustratedexample is location two that stores polygon reference numeral 403.

Then, in step 511, the computer program determines that current polygonpointer 601 identifies a valid polygon, which means that there still isa polygon in ordered list 600 that needs to be assigned to a layer.Therefore, in step 512, the computer program determines whether there isan overlap or an inclusion. Methods for determining whether one polygonoverlaps or is included within another are known to those of skill inthe art, and therefore a particular method for determining overlap orinclusion is not described herein. As shown in FIG. 4A, polygon 403 doesnot overlap polygon 401, which is the only polygon assigned to firstlayer 610 at this time. Therefore, polygon 403 is considered to belocated in the first layer 610, and the computer program then executesstep 514.

In step 514, the computer program assigns polygon 403 to layer 610,which is addressed by current layer pointer 611 (FIG. 3C). In step 514,the computer program then advances current polygon pointer 601 toaddress the next location in ordered list 600, which in the illustratedexample is location three that stores polygon reference numeral 402.

The computer program then returns to step 511. In step 511, the computerprogram determines that current polygon pointer 601 identifies a validpolygon 402, which needs to be assigned to a layer, and therefore thecomputer program executes step 512. As shown in FIG. 4A, polygon 402overlaps polygons 401 and 403, which are assigned to first layer 610.Therefore, polygon 403 is not in first layer 610, and the computerprogram executes step 513 to define a new layer.

In step 513, the computer program generates a new layer 612, and changescurrent layer pointer 611 to address new layer 612, so that layer 612becomes the current layer.

Then, in step 514, the computer program assigns polygon 403 to layer612, which is addressed by current layer pointer 611 (FIG. 3D). In step514, the computer program also advances current polygon pointer 601 toaddress the next location in ordered list 600, which in the illustratedexample is location four that stores polygon reference numeral 404.

The computer program then returns to step 511. In step 511, the computerprogram determines that current polygon pointer 601 identifies a validpolygon 404, which needs to be assigned to a layer, and thereforeexecutes step 512 to check the current layer.

As shown in FIG. 4A, polygon 404 does not overlap polygon 402, which isassigned to current second layer 612. Therefore, polygon 404 is locatedin second layer 612, and the computer program executes step 514 toassign the layer.

In step 514, the computer program assigns polygon 404 to layer 612,which is addressed by current layer pointer 611 (FIG. 6E). In step 514,the computer program then advances current polygon pointer 601 toaddress the next location in ordered list 600, which in the illustratedexample is location five that does not store a polygon referencenumeral.

Then, in step 511, the computer program determines that current polygonpointer 601 does not identify a valid polygon because there is noremaining polygon that needs to be assigned to a layer. Accordingly,step 502 is complete, and the computer program next executes step 503 torotate the polygons, which will be described below.

In summary, steps 501 and 502 are associated with a series ofadvantages. The polygons are ordered in layers according to their depthby taking over of the depth information implicitly present in thetwo-dimensional image. A polygon handled later is assigned to the layerof the polygon previously considered if there is no overlap but isassigned to a new layer if there is an overlap or an inclusion with thepolygon previously considered. This has the effect of producing animpression of the depth in the three-dimensional rotational image, whileat the same time, minimizing the required number of layers. This reducesthe running time of the process 500, since the complexity of the process500 increases linearly with the number of objects. Moreover, arepresentation with a natural look is achieved.

After the computer program completes the assignment of the layers instep 502, the computer program then rotates the polygons and displaysthe resulting three-dimensional rotational image on a video display(step 503). In step 503, the computer program rotates the polygons ofeach layer about a common axis to form a three-dimensional image havinga maximum rotational angle, with each polygon in the reference layerhaving a minimum rotational angle and polygons in layers other than thereference layer having a rotational angle greater than the minimumrotational angle and less than or equal to the maximum rotational angle.Step 503 will be described in more detail below.

FIG. 4B illustrates the result of step 503 in a perspective view. FIG.4D shows the same result in a top view. Object 401′ in thethree-dimensional rotational image 450 corresponds to object 401 in thetwo-dimensional image. Similarly object 402′ corresponds to object 402,object 403′ corresponds to object 403, and object 404′ corresponds toobject 404. FIG. 4B and FIG. 4D illustrate that the method 500 providesa three-dimensional rotational image 450 that maintains the depthinformation of the two-dimensional image 400. The objects, which appearmore in front (i.e., closer to the viewer) in the two-dimensional image400, are rotated by a larger rotational angle and therefore are“sticking out” in the rotational image 450.

Referring back to FIG. 5, in step 503, the computer program rotates thepolygons of each layer to form a three-dimensional rotational image insuch a way that each polygon is given a rotational angle that is betweena minimum rotational angle (Tmin) and a maximum rotational angle (Tmax)according to their layering. The polygons that are assigned to areference layer are rotated by rotational angle Tmin, and the polygonsthat are assigned to layers other than the reference layer areadditionally rotated by variable rotational angle Tvar up to a maximumvariable rotational angle (Tvar max_n). Corresponding to the ordering ofthe layers in depth, Tvar increases from zero (for the polygons in thereference layer) up to Tvar max_n for the polygons of the layer that ismost distant from the reference layer. The value of Tvar for thepolygons assigned to a certain layer therefore corresponds to andreflects the (depth) location of this layer within the whole set oflayers.

It is noted that the position of a layer within the ordered set oflayers does not necessarily correspond to the time at which the layerhas been generated. It may well be possible, however, that there is apredefined reservoir of layers to which the polygons are then assignedsuch that no overlap or inclusion exists for the polygons assigned to asingle layer. In such a case, in step 513 of FIG. 5, instead of actuallygenerating a new layer, the computer program would select a new layerfor assigning the current polygon to. It is noted that independent ofthe time or the way the layers are generated, which may vary, thepolygons which have been ordered sequentially, in step 501, are thenassigned to one or more layers, in step 514, such that a layer does notcontain polygons that overlap or have an inclusion. According to theordering of the layers, then, the computer program rotates the polygonsof the individual layers by a rotational angle between Tmin and Tmax.

The computer program divides the maximum rotational angle (Tmax) in apredetermined ratio between the minimum rotational angle (Tmin) and themaximum variable rotational angle (Tvar max_n) for the polygons of thelayer located most distantly from the reference layer in terms of itsdepth order.

Hence, a maximum rotational angle Tmax for the overall three-dimensionalimage is defined. The computer program divides the maximum rotationalangle Tmax in a certain ratio between a minimum rotational angle Tminand a maximum variable rotational angle Tvar_max_n, which is describedin more detail below, where Tmax=Tmin+Tvar_max_n. Specifically, arotational thickness ratio Tthick is defined as:Tthick=Tmin/Tvar_max_(—) n.

Values of rotational thickness ratio Tthick in the range of 80 to 20have been found to be favorable, while values in the range of 40 to 60or values in the range of 5 to 95 may also be used. The computer programcan receive an input from the user that selects the desired ratio. Theratio represents a compromise between a minimum variable content toavoid false representations in conjunction with z-buffer methods and amaximum variable content to avoid reducing the overall rotational angle.Z-buffer methods, which are common in image processing, use theassignment of a z-value coding for the depth location of a pixel (thelocation in z-direction) to each individual pixel of a two-dimensionalimage. Depth impression such as the covering of an object located morerearwards by an object located more in front can be generated using suchz-buffer methods by judging, based on the z-buffer values, which objectis located more rearwards and which one is located more in front. Sincethis typically involves a limited accuracy (z-buffers typically arehardware supported and therefore have integer accuracy) it may happenthat two-dimensional objects due to rounding errors or due to otherproblems resulting from the limited accuracy of z-buffer methods mayhave the same z-buffer values, thereby making a depth judgementimpossible. In such cases there arises an undefined state since itcannot be determined which object should be displayed in front and whichone behind, thereby leading to a false three-dimensional rotationalimage. This problem becomes less severe if Tvar_max_n increases (whichmeans if Tthick decreases) since then there is a larger difference inrotational angle between the polygons of different layers, therebyavoiding the likelihood of false representations arising from thelimited accuracy of z-buffer methods.

On the other hand, a too large value of Tvar_max_n (and consequently atoo small value of Tthick) may lead to a three-dimensional rotationalimage in which the depth representation is too excessive, which may givean undesirable or unfavorable visual impression.

Hence, if the three-dimensional rotational image includes four layers, afirst layer has rotational angle Tmin, a fourth layer has rotationalangle Tmax, a second layer has a rotational angle T2, and a third layerhas a rotational angle T3, where the rotational angles are such that:Tmin<T2<T3<Tmax,whereT 2=(Tmin+Tvar_2),T 3=(T 2+Tvar_3),Tmax=(T 3+Tvar_4)=Tmin+Tvar_max_(—) n.

When multiple layers are rotated in step 503, it is also visuallyadvantageous for the viewer to allow variable rotational angle Tvar toincrease, in each case, linearly or logarithmically with the sequence ofthe formation of the layers. This increases the impression of thelayering in the three-dimensional rotational image.

Referring to two-dimensional image 400 of FIG. 4A as an example, thereare two layers, and so polygons 401 and 403 in first layer 610, which ischosen as the reference layer, are given a rotational angle Tmin, whilepolygons 402 and 404 in second layer have a rotational angle of(Tmin+Tvar_2), which, in this case, is also (Tmin+Tvar_max_n). FIG. 4Bis the three-dimensional rotational image generated by the computerprogram in step 503. FIG. 4D is a top view of the three-dimensionalrotational image of FIG. 4B that shows the various rotational angledimensions more clearly.

One advantage of above-described process 500 is that the number oflayers in the three-dimensional rotational image is as small aspossible. If the above-described process 500 is utilized, but theinherent depth information in the two-dimensional image is not utilized,four layers are necessary if each polygon in FIG. 4A is assigned to aseparate layer. Since, however, polygons 402 and 404 do not overlap oneanother, polygons 402 and 404 can be assigned to the same layer withoutimpairing the impression of depth for the viewer in thethree-dimensional rotational image. The above-described process 500 thusaccumulates the two-dimensional depth sorting with the “real”two-dimensional overlapping of the individual polygons.

FIG. 4B illustrates a sample result of an application of process 500 tothe group of objects shown in FIG. 4A. The computer program rotatespolygons 401 and 403 in the rearmost layer by an angle Tmin to formrotational bodies 401′ and 403′, respectively, and rotates the polygons402 and 404 of the layer located more in front along an additional angleTvar so that they “stick out” in the three-dimensional rotational imageas objects 402′ and 404′, respectively. Accordingly, the user receivesan impression of the layering of the original two-dimensional image evenafter the three-dimensional rotational image has been generated.

FIG. 4D shows a top view of the resulting three-dimensional rotationalimage. In the example illustrated in FIGS. 4B and 4D, the additionalrotational angle Tvar around which the polygons located more in frontare rotated is distributed symmetrically between the left-hand and theright-hand front area of the rotational body, as can be seen clearlyfrom FIG. 4D. Accordingly, each of the front planes of the resultingopen rotational body preserves the impression of the depth informationas contained in the original two-dimensional image.

As is illustrated by the result shown in FIGS. 4B and 4D can begenerated by rotating the initial two-dimensional image around arotational axis by Tmin/2 clockwise and additionally by Tmin/2counterclockwise, and furthermore by rotating the layers located moreclose to the user by (Tmin+Tvar)/2 clockwise and by (Tmin+Tvar)/2counterclockwise, starting from the reference layer. This results in asymmetrical rotational image as shown in FIGS. 4B and 4D, if theresulting rotational body as a whole is then rotated such that the openfront planes are looked upon by the user as in FIG. 4B.

One of skill in the art will appreciate that the above-described process500 is advantageous for rotational angles Tmin other than 360° and forangles Tvar other than zero. If the computer program selects arotational angle Tmin other than 360°, and if further Tmax is not equalto Tmin (in other words: Tvar does not equal zero), then theabove-described process 500 provides an rotational representation whichpreserves the depth impression of the two-dimensional image.

The computer program may receive additional parameter selections fromthe user that define how to generate the three-dimensional rotationalimage. The parameters may, for example, include (in addition toparameters such as Tmin, Tmax, the rotational thickness Tthick, and therotational thickness ratio) the location of the rotational axis. Also,the received parameters may include a scaling parameter that defines aratio by which an area of a polygon is to be increased or decreased whenrotating the polygon. This is illustrated in FIG. 4E. FIG. 4E shows atop view of a three-dimensional rotational image resulting from rotatinga polygon 460 by a rotational angle larger than 360°, while the area ofthe polygon continually increases together with an increasing rotationalangle. A surface 465 of the rotated polygon has an area larger than theinitial polygon 460, as defined by a scaling factor. Using such ascaling factor leads to constellations where, even for rotational angleslarger than 360°, open planes are viewable to the user. In such cases,it is then advantageous to have the polygons, which in the initialtwo-dimensional representation are located more in front, rotated by anadditional angle Tvar.

Further, the resulting three-dimensional rotational image, as a whole,can be rotated, based on a received user selection, around anyrotational axis.

Further, different sets of rotation angles (Tmin, Tmax) for clockwiserotation and for counterclockwise rotation can be received from the useras parameter selection. The resulting three-dimensional rotational imageis the concatenation of the images which respectively result from theclockwise and the counterclockwise rotation of the initialtwo-dimensional image based on the inputted parameters. The resultingthree-dimensional rotational image is not symmetrical with respect tothe rotational axis.

Further, in step 501 of FIG. 5, the computer program can define a middleobject by the reference layer, instead of the rearmost object. Thecomputer program can then carry out rotation into different directionsfor the layers located in front and behind the reference layer, forexample, with different sets of Tmin and Tmax, resulting in an imageresembling a “telescopic” representation of the original two-dimensionalrepresentation. This is schematically illustrated in FIG. 4F, whichdepicts a top view of a three-dimensional rotational image. In FIG. 4F,objects 470, 471, 472, and 473 result from rotation of theircorresponding two-dimensional images into a first direction indicated byarrow 475. Further, objects 480, 481, and 482 result from rotation oftheir corresponding two-dimensional objects into the opposite directionas indicated by arrow 485. As illustrated in FIG. 4F, Tmax is larger forthe rotation direction indicated by arrow 485 compared to a smaller Tmaxfor the rotation direction indicated by arrow 475.

The foregoing description of an implementation of the invention has beenpresented for purposes of illustration and description. It is notexhaustive and does not limit the invention to the precise formdisclosed. Modifications and variations are possible in light of theabove teachings or may be acquired from practicing the invention. Forexample, the described implementation includes software but the presentimplementation may be implemented as a combination of hardware andsoftware or hardware alone. The invention may be implemented with bothobject-oriented and non-object-oriented programming systems. The scopeof the invention is defined by the claims and their equivalents.

1. A method in a data processing system for producing athree-dimensional rotational image from a two-dimensional imageincluding a plurality of objects, the method comprising the steps of:assigning, by a processor, each object to one of a plurality ofsequential layers that correspond to visually depicted depths of theobjects in the two-dimensional image; rotating, by a processor, theobjects of each layer around a common rotational axis, the commonrotational axis being the common rotational axis for the plurality oflayers, to form the three-dimensional rotational image having a maximumrotational angle around the common rotational axis with each object in afirst of the layers having a minimum rotational angle and objects inlayers other than the first layer having a rotational angle greater thanthe minimum rotational angle and less than or equal to the maximumrotational angle; rotating, by a processor, the three-dimensionalrotational image around a first rotational axis; and displaying thethree-dimensional rotational image, wherein the first rotational axis isselected by a user.
 2. A computer-readable medium containinginstructions that cause a data processing system to perform a method forproducing a three-dimensional rotational image from a two-dimensionalimage including a plurality of objects, the method comprising the stepsof: assigning each object to one of a plurality of sequential layersthat correspond to visually depicted depths of the objects in thetwo-dimensional image; rotating the objects of each layer around acommon rotational axis, the common rotational axis being the commonrotational axis for the plurality of layers, to form thethree-dimensional rotational image having a maximum rotational anglearound the common rotational axis with each object in a first of thelayers having a minimum rotational angle and objects in layers otherthan the first layer having a rotational angle greater than the minimumrotational angle and less than or equal to the maximum rotational angle;and rotating the three-dimensional rotational image around a firstrotational axis; and displaying the three-dimensional rotational image,wherein the first rotational axis is selected by a user.
 3. A dataprocessing system for producing a three-dimensional rotational imagefrom a two-dimensional image including a plurality of objects, the dataprocessing system comprising: a memory comprising a program that assignseach object to one of a plurality of sequential layers that correspondto visually depicted depths of the objects in the two-dimensional image,rotates the objects of each layer around a common rotational axis, thecommon rotational axis being the common rotational axis for theplurality of layers, to form the three-dimensional rotational imagehaving a maximum rotational angle around the common rotational axis witheach object in a first of the layers having a minimum rotational angleand objects in layers other than the first layer having a rotationalangle greater than the minimum rotational angle and less than or equalto the maximum rotational angle; rotating the three-dimensionalrotational image around a first rotational axis; and displays thethree-dimensional rotational image; and a processing unit that runs theprogram, wherein the first rotational axis is selected by a user.
 4. Adata processing system for producing a three-dimensional rotationalimage from a two-dimensional image including a plurality of objects, thedata processing system comprising: means for assigning each object toone of a plurality of sequential layers that correspond to visuallydepicted depths of the objects in the two-dimensional image; means forrotating the objects of each layer around a common rotational axis, thecommon rotational axis being the common rotational axis for theplurality of layers, to form the three-dimensional rotational imagehaving a maximum rotational angle around the common rotational axis witheach object in a first of the layers having a minimum rotational angleand objects in layers other than the first layer having a rotationalangle greater than the minimum rotational angle and less than or equalto the maximum rotational angle; means for rotating thethree-dimensional rotational image around a first rotational axis; andmeans for displaying the three-dimensional rotational image, wherein thefirst rotational axis is selected by a user.
 5. A method in a dataprocessing system for producing a three-dimensional rotational imagefrom a two-dimensional image including a plurality of objects, themethod comprising the steps of: assigning, by a processor, each objectto one of a plurality of sequential layers that correspond to visuallydepicted depths of the objects in the two-dimensional image; rotating,by a processor, the objects of each layer around a common rotationalaxis, the common rotational axis being the common rotational axis forthe plurality of layers, to form the three-dimensional rotational imagehaving a maximum rotational angle around the common rotational axis witheach object in a first of the layers having a minimum rotational angleand objects in layers other than the first layer having a rotationalangle greater than the minimum rotational angle and less than or equalto the maximum rotational angle; and displaying the three-dimensionalrotational image, wherein each object can be independently rotated inone of a first direction and a second direction about the commonrotational axis, and wherein the three-dimensional rotational image isrotated around a first rotational axis selected by a user.
 6. Acomputer-readable medium containing instructions that cause a dataprocessing system to perform a method for producing a three-dimensionalrotational image from a two-dimensional image including a plurality ofobjects, the method comprising the steps of: assigning each object toone of a plurality of sequential layers that correspond to visuallydepicted depths of the objects in the two-dimensional image; rotatingthe objects of each layer around a common rotational axis, the commonrotational axis being the common rotational axis for the plurality oflayers, to form the three-dimensional rotational image having a maximumrotational angle around the common rotational axis with each object in afirst of the layers having a minimum rotational angle and objects inlayers other than the first layer having a rotational angle greater thanthe minimum rotational angle and less than or equal to the maximumrotational angle; and displaying the three-dimensional rotational image,wherein each object can be independently rotated in one of a firstdirection and a second direction about the common rotational axis, andwherein the three-dimensional rotational image is rotated around a firstrotational axis selected by a user.
 7. A data processing system forproducing a three-dimensional rotational image from a two-dimensionalimage including a plurality of objects, the data processing systemcomprising: a memory comprising a program that assigns each object toone of a plurality of sequential layers that correspond to visuallydepicted depths of the objects in the two-dimensional image, rotates theobjects of each layer around a common rotational axis, the commonrotational axis being the common rotational axis for the plurality oflayers, to form the three-dimensional rotational image having a maximumrotational angle around the common rotational axis with each object in afirst of the layers having a minimum rotational angle and objects inlayers other than the first layer having a rotational angle greater thanthe minimum rotational angle and less than or equal to the maximumrotational angle; and displays the three-dimensional rotational image,wherein each object can be independently rotated in one of a firstdirection and a second direction about the common rotational axis, andwherein the three-dimensional rotational image is rotated around a firstrotational axis selected by a user; and a processing unit that runs theprogram.